#ifndef EVENT_INTERFACE_H_
#define EVENT_INTERFACE_H_

#include "factory.h"
#include "graphicsfactory.h"

class CEventInterface
{

protected:
	
  CGraphicsFactory * m_pGraphicsFactory;
  CFactory * m_pSoundFactory;

  double * m_pDPS;
  
public:

  CEventInterface()
  {
	  
	  m_pDPS = NULL;
	  
  }
  
  virtual ~CEventInterface() 
  {
  }

  inline void SetFactories( CGraphicsFactory * gfx, CFactory * sound )
  {
   
    m_pGraphicsFactory = gfx;
    m_pSoundFactory = sound;
    
  }
  
  inline CGraphicsFactory * Graphics()
  {
    
    return m_pGraphicsFactory;
    
  }
  
  inline CFactory * Sound()
  {
   
    return m_pSoundFactory;
    
  }
  
  inline double GetDPS()
  {
	
	  return *m_pDPS;
	  
  }
  
  inline virtual void ScheduleLoadMap( std::string map ) { }
  
  inline virtual void LoadMap( std::string map ) { }
  
  inline virtual void CallLevelHook( const char * s ) { }
  
  inline void SetDPSPointer( double * dps )
  {
	
	  m_pDPS = dps;
	  
  }
  
};

#endif
